Ext.define('MelhorCompra.view.Combustivel', {
    extend: 'Ext.form.Panel',
    xtype: 'combustivel',

    config: {
        title: 'Combustível',
        cls: 'form',

        items: [{
            xtype: 'fieldset',
            title: 'Preço Litro',
            
            items: [{
                id: 'vlrEtanol',
                xtype: 'textfield',
                label: 'Etanol',
                component: {type: 'tel'}
            },{
                id: 'vlrGasolina',
                xtype: 'textfield',
                label: 'Gasolina',
                component: {type: 'tel'}
            }]
        },{
            xtype: 'fieldset',
            title: 'Rendimento menor com Etanol',
            instructions: 'Na média os carros rendem 30% menos com Etanol. Caso este não seja o consumo do seu carro, altere o campo acima.',
            
            items: [{
                id: 'vlrRendimento',
                xtype: 'textfield',
                component: {type: 'tel'},
                label: '%',
                value: 30
            }]
        },{
            xtype: 'toolbar',
            docked: 'top',
            layout: {pack: 'center'},
            defaults: {
                iconMask: true
            },
            items: [
                {
                    xtype: 'button',
                    iconCls: 'more',
                    iconMask: true,
                    action: 'exibirMenuLateral'
                },{
                    xtype: 'spacer'
                },{
                    xtype: 'button',
                    text: 'Limpar',
                    iconCls: 'refresh',
                    handler: function() {
                        resetCombustivel();
                    }
                },
                {
                    xtype: 'button',
                    text: 'Calcular',
                    iconCls: 'compose',
                    ui: 'confirm',
                    handler: function() {
                        calcularCombustivel();
                    }
                }
            ]
        },{
            xtype: 'toolbar',
            docked: 'bottom',
            layout: {pack: 'center'},
            defaults: {
                iconMask: true
            },
            items: [
                {
                    xtype: 'button',
                    iconCls: 'more',
                    iconMask: true,
                    action: 'exibirMenuLateral'
                },{
                    xtype: 'spacer'
                },{
                    xtype: 'button',
                    text: 'Limpar',
                    iconCls: 'refresh',
                    handler: function() {
                        resetCombustivel();
                    }
                },
                {
                    xtype: 'button',
                    text: 'Calcular',
                    iconCls: 'compose',
                    ui: 'confirm',
                    handler: function() {
                        calcularCombustivel();
                    }
                }
            ]
        }],

        listeners: {
            show: function(form, opts){
                Ext.Function.defer(function() {
                   form.down('#vlrEtanol').focus();
                }, 200);
            }
        }
    }
});

function resetCombustivel() {
    var valEtanol = Ext.getCmp('vlrEtanol');
    var valGasolina = Ext.getCmp('vlrGasolina');

    valEtanol.reset();
    valGasolina.reset();
}

function calcularCombustivel() {
    var erros = new Array();
    var controller = MelhorCompra.app.getController('MainController');
    var valEtanol = controller.getNumFromField(
        'vlrEtanol',
        erros,
        'Preencha corretamente o campo Preço do Etanol');
    var valGasolina = controller.getNumFromField(
        'vlrGasolina',
        erros,
        'Preencha corretamente o campo Preço da Gasolina');
    var valRendimento = controller.getNumFromField(
        'vlrRendimento',
        erros,
        'Preencha corretamente o campo Rendimento com Etanol');

    if(erros.length == 0) {
        var valGas = ((100 - valRendimento) / 100) * valGasolina;
        if(valGas > valEtanol) {
            Ext.Msg.alert('MobFacil.com', 'Etanol está ' + getVlrPerc(valGas, valEtanol) + '% mais barato!');
        } else if(valGas < valEtanol) {
            Ext.Msg.alert('MobFacil.com', 'Gasolina está ' + getVlrPerc(valEtanol, valGas) + '% mais barato!');
        } else {
            Ext.Msg.alert('MobFacil.com', 'Valores equivalentes: Abasteça conforme sua preferência!');
        }
    } else {
        controller.exibirMensagemErro(erros);
    }
}